<template>
  <div class="sdy-search-history">
    <div v-if="historyList.length" class="history box">
      <div class="title">
        <span>最近搜素</span>
        <van-icon @click="clearHistoryHandler" class="del" name="delete-o" />
      </div>
      <ul class="content">
        <li 
        v-for="item in historyList"
         @click="clickHandler">{{ item }}</li>
       
      </ul>
    </div>
    <div class="hot box">
    <div class="title">
      <span>热门搜素</span>
      <span @click="isShow=!isShow">{{ isShow? '隐藏':'显示'}}</span>
    </div>
    <ul class="content" v-if="isShow">
      <li
      v-for="item in hotList"
      :key="item.wordid"
      @click="clickHandler"
      >{{item.keyword}}</li>
     
      </ul>
      <div v-else class="hid" >
        已经隐藏搜索发现
      </div>
  </div>
  </div>
</template>
<script setup lang="ts">
  import {ref, onMounted} from 'vue'
import {useRouter,type Router  } from 'vue-router';
// 导入请求 api
import { hotSearchApi } from "@/api/goods";
//导入对应的ts
import  type { MyHotSearchItem } from "@/config/interface";




//历史记录相关
const $router : Router = useRouter()
// 需要一个数组保存历史记录
const historyList = ref(JSON.parse(window.localStorage.getItem('history') as string) || [])



  //准备一个变量  控制隐藏 显示
  const isShow = ref<boolean>(true)
  //按钮点击的时候  跳转到分类页面
  const clickHandler = (e:Event) =>{
    const text =(e.target as HTMLElement) .innerText
    //需要跳转路由，需要携带text去到商品列表页
    $router.push({path:'/list',query:{search:text}})
  }
  // 点击历史记录边上的删除按钮
  const clearHistoryHandler = () =>{
    window.localStorage.removeItem('history')
    historyList.value = []
  }
//热门搜索相关
//准备一个变量保存热门搜素列表
const hotList = ref<MyHotSearchItem[]>([])

//挂载完毕后请求数据
 onMounted (async ()=>{
  const res = await hotSearchApi()
  hotList.value = res.data
 })

</script>
<style coped lang="scss">
.sdy-search-history {
  height: 100%;
  box-sizing: border-box;
  padding: 15px;

  >.box {
    margin-bottom: 30px;

    >.title {
      display: flex;
      justify-content: space-between;

      .del {
        font-size: 20px;
      }
    }

    >ul {
      display: flex;
      flex-wrap: wrap;
      margin-top: 5px;

      >li {
        background-color: #c4c4c4;
        color: #fff;
        padding: 2px 3px;
        margin: 0 2px;
      }
    }

    >.hid {
      height: 100px;
      display: flex;
      justify-content: center;
      align-items: center;
    }
  }
}
</style>